package com.zhl.string;

public class StringDemo2 {
    public static void main(String[] args) {
        //目标：快速熟悉String提供的处理字符串的方法
        String s = "今天是学习java的第7天";
        //1.获取字符串长度
        System.out.println("字符串的长度为："+s.length());

        //2.提取字符串中某个索引位置的字符
        char c = s.charAt(3);
        System.out.println(c);

        //字符串的遍历
        for(int i = 0;i < s.length();i++)
        {
            System.out.println("该字符串的第"+i+"个字符是："+s.charAt(i));
        }

        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

        //3.把字符串转换成字符数组,(通过数组也可以进行遍历字符串)
        char[] cha = s.toCharArray();
        for(int i = 0;i < cha.length;i++)
        {
            System.out.print(cha[i]);//这里就不换行打印输出了
        }

        System.out.println("");
        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

        //4.判断两个字符串内容是否一样
        String s1 = "今天";
        String s2 = "今天";
        System.out.println(s1 == s2);//true 比较的是引用地址 ，因为没有使用new 所以地址是一样的
        System.out.println(s1.equals(s2));//true

        String s3 = new String("今天");
        String s4 = new String("今天");
        System.out.println(s3 == s4);//false  因为new 了,比较地址不一样了
        System.out.println(s3.equals(s4));//true

        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        //5忽略大小写比较字符串内容   (一般用于验证码)
        String c1 = "Hello";
        String c2 = "hello";
        System.out.println(c1.equals(c2));//false    默认是不忽略大小写的
        System.out.println(c1.equalsIgnoreCase(c2));//true  忽略大小写

        //6.截取字符串内容    截取内容包括前索引，不包括后索引 (包前不包后)
        String str = "Hello World java is awesome nihao,好好学习天天向上";
        String rs = str.substring(0,16); //截取前16个字符
        System.out.println(rs);

        System.out.println("~");

        //7.从当前位置一直截取到字符串末尾
        String str2 = "目前进度是：学习java的第7天,明天继续学习java,后面还有Mysql的学习";
        String rs2 = str2.substring(6); //从第15个字符开始截取到末尾
        System.out.println(rs2);

        //8.把字符串中的某个内容替换成另一个新内容返回
        String info = "垃圾电影,垃圾剧集,垃圾片子,垃圾网站!";
        String newInfo = info.replace("垃圾", "***");
        System.out.println(newInfo);

        //9.判断字符串是否包含某个关键字  区分大小写
        String info2 = "今天是学习java的第7天,明天继续学习java,后面还有Mysql的学习";
        boolean flag = info2.contains("java");  //判断是否包含java关键字 含有返回true 不含有返回false。
        System.out.println(flag);

        //10.判断字符串是否以某个字符串开头
        String info3 = "今天是学习java的第7天,明天继续学习java,后面还有Mysql的学习";
        boolean flag2 = info3.startsWith("今天");  //判断是否以今天开头  开头返回true  否则返回false。
        System.out.println(flag2);
        System.out.println(info3.endsWith("学习java的第7天"));
        System.out.println(info3.endsWith("今天2"));

        //11.分割字符串，按照指定内容分割成多个字符串，放到一个字符串数组返回
        String name = "张三,李四,王五,赵六,徐颖,田曦薇";
        String[] name1 = name.split(","); //按照逗号分割字符串
        for(int i = 0;i < name1.length;i++)
        {
            System.out.println(name1[i]);
        }


    }
}
